package br.gov.mi.corporativo.dominio.boundary.rhmi.unidadeestrutura;

import java.util.Date;
import java.util.List;

import javax.inject.Inject;
import javax.jws.WebService;

import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;

import br.gov.mi.corporativo.dominio.boundary.rhmi.unidadeestrutura.UnidadeEstruturaEndPoint;
import br.gov.mi.corporativo.dominio.entidade.rhmi.UnidadeEstrutura;
import br.gov.mi.corporativo.dominio.repositorio.rhmi.UnidadeEstruturaRepositorio;
import br.gov.mi.infraestrutura.crud.CrudServicoImpl;

@Component
@Transactional(readOnly=true)
@WebService(endpointInterface = "br.gov.mi.corporativo.dominio.boundary.rhmi.unidadeestrutura.UnidadeEstruturaEndPoint")
public class UnidadeEstruturaServico extends CrudServicoImpl<UnidadeEstrutura, Long, UnidadeEstruturaRepositorio>  implements UnidadeEstruturaEndPoint{
	
	@Inject
    public void setRepository(UnidadeEstruturaRepositorio repositorio) {
        super.setRepositorio(repositorio);
    }

	@Override
	public UnidadeEstrutura recuperarPorIdUnidadeEstrutura(Long idUnidadeEstrutura) {
		
		return repositorio.findByIdUnidadeEstrutura(idUnidadeEstrutura);
	}

	@Override
	public UnidadeEstrutura recuperarPorUnidadeEstruturaByIdUnidadeEstruturaAnterior(Long unidadeEstruturaByIdUnidadeEstruturaAnterior) {
		
		return repositorio.findByUnidadeEstruturaByIdUnidadeEstruturaAnterior(unidadeEstruturaByIdUnidadeEstruturaAnterior);
	}

	@Override
	public UnidadeEstrutura recuperarPorUnidadeEstruturaByIdUnidadeEstruturaPai(Long unidadeEstruturaByIdUnidadeEstruturaPai) {
		
		return repositorio.findByUnidadeEstruturaByIdUnidadeEstruturaPai(unidadeEstruturaByIdUnidadeEstruturaPai);
	}

	@Override
	public List<UnidadeEstrutura> recuperarPorTipoUnidadeEstrutura(Long tipoUnidadeEstrutura) {
		
		return repositorio.findByTipoUnidadeEstrutura(tipoUnidadeEstrutura);
	}

	@Override
	public List<UnidadeEstrutura> recuperarPorIdPessoaJuridicaUnidade(Long idPessoaJuridicaUnidade) {
		
		return repositorio.findByIdPessoaJuridicaUnidade(idPessoaJuridicaUnidade);
	}

	@Override
	public List<UnidadeEstrutura> recuperarPorCdOrgaoSiorg(Long cdOrgaoSiorg) {
		
		return repositorio.findByCdOrgaoSiorg(cdOrgaoSiorg);
	}

	@Override
	public List<UnidadeEstrutura> recuperarPorCdOrgaoSiafi(String cdOrgaoSiafi) {
		
		return repositorio.findByCdOrgaoSiafi(cdOrgaoSiafi);
	}

	@Override
	public List<UnidadeEstrutura> recuperarPorNmUnidadeEstrutura(String nmUnidadeEstrutura) {
		
		return repositorio.findByNmUnidadeEstrutura(nmUnidadeEstrutura);
	}

	@Override
	public List<UnidadeEstrutura> recuperarPorSgUnidadeEstrutura(String sgUnidadeEstrutura) {
		
		return repositorio.findBySgUnidadeEstrutura(sgUnidadeEstrutura);
	}

	@Override
	public List<UnidadeEstrutura> recuperarPorDsUnidadeEstrutura(String dsUnidadeEstrutura) {
		
		return repositorio.findByDsUnidadeEstrutura(dsUnidadeEstrutura);
	}

	@Override
	public List<UnidadeEstrutura> recuperarPorStEstruturaMi(String stEstruturaMi) {
		
		return repositorio.findByStEstruturaMi(stEstruturaMi);
	}

	@Override
	public List<UnidadeEstrutura> recuperarPorCdOrgaoPoder(String cdOrgaoPoder) {
		
		return repositorio.findByCdOrgaoPoder(cdOrgaoPoder);
	}

	@Override
	public List<UnidadeEstrutura> recuperarPorDtInicioVigencia(Date dtInicioVigencia) {
		
		return repositorio.findByDtInicioVigencia(dtInicioVigencia);
	}

	@Override
	public List<UnidadeEstrutura> recuperarPorDtTerminoVigencia(Date dtTerminoVigencia) {
		
		return repositorio.findByDtTerminoVigencia(dtTerminoVigencia);
	}

	@Override
	public List<UnidadeEstrutura> recuperarPorDsEmail(String dsEmail) {
		
		return repositorio.findByDsEmail(dsEmail);
	}

	@Override
	public List<UnidadeEstrutura> recuperarPorCdUasg(Long cdUasg) {
		
		return repositorio.findByCdUasg(cdUasg);
	}

	@Override
	public List<UnidadeEstrutura> recuperarPorCdGestao(Long cdGestao) {
		
		return repositorio.findByCdGestao(cdGestao);
	}

	@Override
	public List<UnidadeEstrutura> recuperarPorStRegistro(String stRegistro) {
		
		return repositorio.findByStRegistro(stRegistro);
	}


}
